Embodiments of the present invention are concerned with facilitating server pool management.
Computer systems having a configurable pool of resources, i.e. a pool of servers of which at least a subset is active, are commonly deployed to handle a variable number of tasks such as service requests or the like. An example of such a computer system is a cloud-based computer system providing services over a network such as the Internet.
It is desirable to manage the capacity utilization of such a system. If the system capacity is underutilized, this may mean that too many servers are active, e.g. perform at a fraction of their individual capacity, which means that energy is being wasted due to the fact that the idle part of the server capacity still causes energy to be consumed, e.g. through execution of no operation instructions or the like. If the system capacity is overutilized, this may mean that too few servers are active, which may cause performance penalties such as increased throughput time for the tasks to be executed by the computer system.
Solutions exist that adjust the system capacity based on pending workload, e.g. by adding or removing servers from the active server pool. In this manner, the system utilization is intended to be relatively constant and effectively utilized. However, altering the number of active servers comes at a performance penalty in terms of additional energy consumption and reduced energy efficiency associated with start-up or shut-down of an active server. This is particularly problematic where servers are added to the pool of active servers to cope with short-lived increases in demand for system capacity. Such energy management is not only desirable from a cost perspective, but also from an operability perspective, e.g. to facilitate temperature control in a confined space housing the servers, e.g. a data center. Excessive consumption of energy can cause the temperature in such confined spaces to become too high, i.e. outside a safe operating range for the servers.